"""
pymysql工具类
1、数据库连接：con.connect 放到构造函数中  def __init__  初始化时自动调用构造函数
2、释放资源： 析构函数 __del__ :游标和数据库的连接对象的关闭
3、自定义数据查询，添加，修改，删除函数
"""
import pymysql


class MysqlUtil:

    def __init__(self, database="db_xzb"):
        self.con = pymysql.connect(
            host='localhost',
            user='root',
            password='123456',
            port=3306,
            database=database
        )
        print(self.con)
        self.cursor = self.con.cursor()


    def __del__(self):
        self.con.commit()
        self.cursor.close()
        self.con.close()

    def query_one(self, sql, args=None):
        """
        查询一条
        :param sql:
        :param args:
        :return:
        """
        if args != None:
            self.cursor.execute(sql, args)
        else:
            self.cursor.execute(sql)
        return self.cursor.fetchone()

    def query_many(self, sql, size=1, args=None):
        """
        查询多条
        :param sql:
        :param size:
        :param args:
        :return:
        """
        if args != None:
            self.cursor.execute(sql, args)
        else:
            self.cursor.execute(sql)
        return self.cursor.fetchmany(size)

    def query_all(self, sql, args=None):
        """
        查询全部
        :param sql:
        :param args:
        :return:
        """
        if args != None:
            self.cursor.execute(sql, args)
        else:
            self.cursor.execute(sql)
        return self.cursor.fetchall()

    def operator_data(self, sql, args=None):
        """
        插入  修改  删除
        :param sql:
        :param args:
        :return:
        """
        if args != None:
            result = self.cursor.execute(sql, args)
        else:
            result = self.cursor.execute(sql)
        return result

